common.skill

ডেটাবেজ অপারেশনস

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB)
191
191

ডেটাবেজ অপারেশনস হল ডেটাবেসের মধ্যে ডেটা সংরক্ষণ, পরিচালনা এবং পুনরুদ্ধারের জন্য ব্যবহৃত প্রক্রিয়া। DocumentDB (এবং MongoDB) ডেটাবেস ব্যবস্থার মধ্যে সাধারণত চারটি প্রধান ধরনের অপারেশন রয়েছে: Create, Read, Update, এবং Delete (CRUD)। এই অপারেশনগুলি ডেটাবেসের মধ্যে ডেটা ম্যানিপুলেশন ও ব্যবস্থাপনা করতে ব্যবহৃত হয়। নিচে DocumentDB-এ এই অপারেশনগুলির ব্যাখ্যা এবং উদাহরণ দেওয়া হয়েছে।


1. Create (তৈরি করা)

ডেটাবেসে নতুন ডেটা তৈরি করা বা ইনসার্ট করার জন্য insertOne() এবং insertMany() ফাংশন ব্যবহার করা হয়।

  • insertOne(): একটি একক ডকুমেন্ট ইনসার্ট করতে ব্যবহৃত হয়।
  • insertMany(): একাধিক ডকুমেন্ট একবারে ইনসার্ট করার জন্য ব্যবহৃত হয়।

উদাহরণ:

একটি নতুন ডকুমেন্ট ইনসার্ট করা:

db.products.insertOne({
  "product_id": "12345",
  "name": "Wireless Mouse",
  "category": "Electronics",
  "price": 25.99,
  "stock": 150
});

একাধিক ডকুমেন্ট ইনসার্ট করা:

db.products.insertMany([
  { "product_id": "12346", "name": "Keyboard", "category": "Electronics", "price": 30.99, "stock": 200 },
  { "product_id": "12347", "name": "Headphones", "category": "Electronics", "price": 50.99, "stock": 300 }
]);

2. Read (পড়া)

ডেটাবেস থেকে ডেটা পড়া বা অনুসন্ধান করার জন্য find() এবং findOne() ফাংশন ব্যবহার করা হয়।

  • find(): একাধিক ডকুমেন্ট খুঁজে বের করার জন্য ব্যবহৃত হয়।
  • findOne(): একক ডকুমেন্ট খুঁজে বের করার জন্য ব্যবহৃত হয়।

উদাহরণ:

একটি কোলেকশনের সমস্ত ডকুমেন্ট পড়া:

db.products.find();

একটি নির্দিষ্ট শর্তে ডকুমেন্ট পড়া:

db.products.find({ "category": "Electronics" });

একটি নির্দিষ্ট ডকুমেন্ট খোঁজা:

db.products.findOne({ "product_id": "12345" });

3. Update (আপডেট করা)

ডেটাবেসে বিদ্যমান ডেটা আপডেট করতে updateOne() বা updateMany() ব্যবহার করা হয়।

  • updateOne(): একটি নির্দিষ্ট ডকুমেন্ট আপডেট করতে ব্যবহৃত হয়।
  • updateMany(): একাধিক ডকুমেন্ট আপডেট করার জন্য ব্যবহৃত হয়।

উদাহরণ:

একটি ডকুমেন্টের একটি ফিল্ড আপডেট করা:

db.products.updateOne(
  { "product_id": "12345" },  // অনুসন্ধান কন্ডিশন
  { $set: { "price": 28.99 } }  // নতুন মূল্য সেট করা
);

একাধিক ডকুমেন্ট আপডেট করা:

db.products.updateMany(
  { "category": "Electronics" },
  { $set: { "stock": 250 } }
);

4. Delete (মুছে ফেলা)

ডেটাবেস থেকে ডেটা মুছে ফেলা বা ডিলিট করার জন্য deleteOne() বা deleteMany() ব্যবহার করা হয়।

  • deleteOne(): একটি নির্দিষ্ট ডকুমেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।
  • deleteMany(): একাধিক ডকুমেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।

উদাহরণ:

একটি ডকুমেন্ট মুছে ফেলা:

db.products.deleteOne({ "product_id": "12345" });

একাধিক ডকুমেন্ট মুছে ফেলা:

db.products.deleteMany({ "category": "Electronics" });

5. Aggregation (এগ্রিগেশন)

DocumentDB এবং MongoDB-এর aggregation framework ব্যবহার করে আপনি জটিল ডেটা প্রক্রিয়াকরণ, গ্রুপিং, ফিল্টারিং এবং অন্যান্য উন্নত অপারেশন করতে পারেন।

উদাহরণ:

ডেটার গ্রুপিং:

db.orders.aggregate([
  { $match: { "status": "completed" } },
  { $group: { "_id": "$customer_id", "totalAmount": { $sum: "$amount" } } },
  { $sort: { "totalAmount": -1 } }
]);

এটি সকল completed অর্ডারের জন্য customer_id অনুসারে মোট পরিমাণ হিসাব করবে এবং সেগুলি কম থেকে বেশি অনুযায়ী সাজিয়ে দেখাবে।


6. Indexing (ইন্ডেক্সিং)

ইন্ডেক্সিং ডেটাবেসের অপারেশনগুলো দ্রুত করতে সাহায্য করে। আপনি createIndex() ফাংশন ব্যবহার করে ডেটাবেসে ইনডেক্স তৈরি করতে পারেন।

উদাহরণ:

একটি ফিল্ডের উপর ইনডেক্স তৈরি করা:

db.products.createIndex({ "category": 1 });

এটি category ফিল্ডের উপর একটি ascending order ইনডেক্স তৈরি করবে, যা দ্রুত অনুসন্ধানের জন্য সহায়ক।


7. Transactions (ট্রানজাকশন)

DocumentDB সাপোর্ট করে multi-document transactions, যা একাধিক ডকুমেন্টে একযোগে পরিবর্তন ঘটানোর জন্য ব্যবহৃত হয়।

উদাহরণ:

একটি ট্রানজেকশন শুরু এবং একাধিক ডকুমেন্ট আপডেট করা:

const session = db.startSession();

session.startTransaction();
try {
  db.products.updateOne({ "product_id": "12345" }, { $set: { "price": 29.99 } }, { session });
  db.products.updateOne({ "product_id": "12346" }, { $set: { "stock": 250 } }, { session });
  session.commitTransaction();
} catch (error) {
  session.abortTransaction();
  throw error;
} finally {
  session.endSession();
}

এই কোডটি দুটি ডকুমেন্টে একযোগে পরিবর্তন ঘটানোর জন্য একটি ট্রানজেকশন ব্যবহার করে, যা সফল হলে commit হবে এবং সমস্যা হলে abort করা হবে।


সারাংশ

CRUD (Create, Read, Update, Delete) অপারেশনগুলি DocumentDB (এবং MongoDB) ডেটাবেস ব্যবস্থার মৌলিক কার্যক্রম। আপনি Aggregation, Indexing, Transactions এবং অন্যান্য উন্নত অপারেশনগুলি ব্যবহার করে ডেটার উপর জটিল কার্যক্রম পরিচালনা করতে পারেন। ইন্ডেক্সিং এবং কুয়েরি অপটিমাইজেশন পারফরম্যান্স বৃদ্ধি করতে সহায়ক, এবং ট্যানজেকশনের মাধ্যমে একাধিক ডকুমেন্টে একযোগে নিরাপদ পরিবর্তন সম্ভব হয়। DocumentDB ডেটাবেস ব্যবস্থাপনা সহজ এবং কার্যকরী, যা বড় আকারের ডেটাবেস ব্যবস্থার জন্য উপযুক্ত।

common.content_added_by

ডেটাবেজ এবং Collection তৈরি

207
207

DocumentDB বা MongoDB এর মতো NoSQL ডেটাবেসে ডেটাবেজ এবং Collection তৈরি করা একটি সাধারণ প্রক্রিয়া। এখানে ডেটাবেজ হলো একটি লজিক্যাল ইউনিট যা এক বা একাধিক Collection ধারণ করে, এবং একটি Collection হলো ডেটার গ্রুপ যা ডকুমেন্ট সমূহ ধারণ করে।

এখানে আমরা ডেটাবেজ এবং Collection তৈরি করার প্রক্রিয়া দেখব, বিশেষত Amazon DocumentDB ব্যবহার করে MongoDB-এর মত সামঞ্জস্যপূর্ণভাবে।


১. ডেটাবেজ তৈরি

DocumentDB বা MongoDB-তে ডেটাবেজ তৈরি করার জন্য কোনও স্কিমা প্রয়োজন হয় না, কারণ এটি schema-less ডেটাবেস। একটি ডেটাবেজ সাধারণত এক বা একাধিক Collection ধারণ করে, যেখানে ডকুমেন্ট (যেমন JSON ডকুমেন্ট) সংরক্ষিত থাকে।

DocumentDB তে ডেটাবেজ তৈরি

  1. AWS Management Console ব্যবহার করে ডেটাবেজ তৈরি:
    • AWS Management Console এ লগইন করুন।
    • DocumentDB সার্ভিসে যান।
    • "Create Cluster" ক্লিক করুন এবং আপনার ডেটাবেস ক্লাস্টার কনফিগার করুন।
    • ক্লাস্টার তৈরি হয়ে গেলে, আপনি mongo shell অথবা MongoDB Compass ব্যবহার করে ডেটাবেজ তৈরি করতে পারবেন।
  2. MongoDB Shell অথবা MongoDB Compass ব্যবহার করে ডেটাবেজ তৈরি: MongoDB Shell থেকে ডেটাবেজ তৈরি করতে আপনি নিচের কমান্ডটি ব্যবহার করতে পারেন:

    use myDatabase
    

    এখানে myDatabase হলো আপনার নতুন ডেটাবেজের নাম। এই কমান্ডটি ডেটাবেজ তৈরি করবে যদি এটি আগে থেকে না থাকে।


২. Collection তৈরি

Collection হলো ডেটাবেজের মধ্যে ডকুমেন্টগুলোর একটি গ্রুপ। MongoDB বা DocumentDB-তে, আপনি ডেটাবেজে ডকুমেন্ট ইনসার্ট করার সময় অটোমেটিকভাবে একটি Collection তৈরি করতে পারেন, বা Collection তৈরি করার জন্য explicit কমান্ডও ব্যবহার করতে পারেন।

DocumentDB তে Collection তৈরি

DocumentDB তে Collection তৈরি করার জন্য MongoDB API এর মতো ব্যবহার করা যেতে পারে। আপনি MongoDB shell অথবা MongoDB Compass ব্যবহার করে Collection তৈরি করতে পারেন।

  1. MongoDB Shell এ Collection তৈরি: MongoDB Shell ব্যবহার করে একটি নতুন Collection তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

    db.createCollection("myCollection")
    

    এখানে myCollection হলো Collection এর নাম। যদি আপনি Collection তৈরি না করেন এবং ডেটা ইনসার্ট করেন, তবে MongoDB বা DocumentDB স্বয়ংক্রিয়ভাবে Collection তৈরি করবে।

  2. MongoDB Compass ব্যবহার করে Collection তৈরি:
    • MongoDB Compass এ লগইন করুন।
    • আপনার ডেটাবেজ নির্বাচন করুন।
    • "Create Collection" অপশন নির্বাচন করুন এবং Collection এর নাম দিন।

৩. ডেটাবেজ এবং Collection তৈরি করার প্রক্রিয়া

MongoDB Shell এ ডেটাবেজ এবং Collection তৈরি উদাহরণ:

  1. ডেটাবেজ তৈরি:

    use myNewDatabase
    

    এখানে myNewDatabase হলো ডেটাবেজের নাম।

  2. Collection তৈরি:

    db.createCollection("myNewCollection")
    

    এখানে myNewCollection হলো Collection এর নাম।

  3. ডকুমেন্ট ইনসার্ট করা: Collection তৈরি হয়ে গেলে, আপনি ডেটা ইনসার্ট করতে পারেন:

    db.myNewCollection.insert({ name: "John Doe", age: 30, city: "New York" })
    

৪. Collection-এ ডেটা ইনসার্ট এবং পরিচালনা

DocumentDB বা MongoDB তে Collection তৈরি করার পর, আপনি সহজেই ডকুমেন্ট ইনসার্ট, আপডেট, ডিলিট এবং কুয়েরি করতে পারেন।

ডকুমেন্ট ইনসার্ট:

db.myCollection.insert({ name: "Alice", age: 25, city: "London" })

ডকুমেন্ট আপডেট:

db.myCollection.update(
   { name: "Alice" },
   { $set: { age: 26 } }
)

ডকুমেন্ট ডিলিট:

db.myCollection.remove({ name: "Alice" })

সারাংশ

  • ডেটাবেজ হলো একটি লজিক্যাল ইউনিট যা এক বা একাধিক Collection ধারণ করে। DocumentDB এবং MongoDB-তে ডেটাবেজ এবং Collection তৈরি করার প্রক্রিয়া খুবই সহজ এবং স্কিমাহীন।
  • আপনি MongoDB Shell বা MongoDB Compass ব্যবহার করে ডেটাবেজ এবং Collection তৈরি করতে পারেন।
  • Collection হলো ডেটার একটি গ্রুপ, যা JSON ডকুমেন্ট সংরক্ষণ করে। যখনই আপনি ডেটা ইনসার্ট করবেন, MongoDB বা DocumentDB স্বয়ংক্রিয়ভাবে Collection তৈরি করবে, যদি তা পূর্বে তৈরি না থাকে।
common.content_added_by

ডকুমেন্ট ইনসার্ট, আপডেট এবং ডিলিট করা

186
186

DocumentDB (এবং MongoDB) ডেটাবেসে ডেটা পরিচালনা করতে CRUD অপারেশনগুলি (Create, Read, Update, Delete) ব্যবহার করা হয়। এই অপারেশনগুলির মাধ্যমে ডকুমেন্ট তৈরি, সংশোধন এবং মুছে ফেলা হয়। নিচে DocumentDB-তে ডকুমেন্ট ইনসার্ট, আপডেট এবং ডিলিট করার প্রক্রিয়া বিস্তারিতভাবে ব্যাখ্যা করা হলো।


ডকুমেন্ট ইনসার্ট (Insert)

DocumentDB-তে নতুন ডকুমেন্ট যোগ করার জন্য insertOne() বা insertMany() মেথড ব্যবহার করা হয়। এখানে insertOne() একটি একক ডকুমেন্ট ইনসার্ট করতে ব্যবহৃত হয়, এবং insertMany() একাধিক ডকুমেন্ট ইনসার্ট করার জন্য ব্যবহৃত হয়।

insertOne() উদাহরণ:

db.collection("users").insertOne({
  name: "John Doe",
  email: "john.doe@example.com",
  age: 30,
  is_active: true
});

এখানে, users নামে একটি কলেকশনে একটি নতুন ডকুমেন্ট ইনসার্ট করা হয়েছে, যার মধ্যে নাম, ইমেইল, বয়স এবং অ্যাক্টিভ স্টেটাস রয়েছে।

insertMany() উদাহরণ:

db.collection("users").insertMany([
  { name: "Alice", email: "alice@example.com", age: 25 },
  { name: "Bob", email: "bob@example.com", age: 28 }
]);

এখানে, দুটি ডকুমেন্ট একসাথে ইনসার্ট করা হয়েছে।


ডকুমেন্ট আপডেট (Update)

DocumentDB-তে ডকুমেন্ট আপডেট করতে updateOne(), updateMany(), বা replaceOne() মেথড ব্যবহার করা হয়। এখানে updateOne() একটি একক ডকুমেন্ট আপডেট করতে ব্যবহৃত হয়, updateMany() একাধিক ডকুমেন্ট আপডেট করতে ব্যবহৃত হয় এবং replaceOne() একটি ডকুমেন্ট সম্পূর্ণরূপে প্রতিস্থাপন করতে ব্যবহৃত হয়।

updateOne() উদাহরণ:

db.collection("users").updateOne(
  { email: "john.doe@example.com" }, // ফিল্টার শর্ত
  { $set: { age: 31 } }              // নতুন মান
);

এখানে, email ফিল্টার ব্যবহার করে যাদের ইমেইল john.doe@example.com তাদের বয়স ৩০ থেকে ৩১ এ আপডেট করা হয়েছে।

updateMany() উদাহরণ:

db.collection("users").updateMany(
  { is_active: true },             // ফিল্টার শর্ত
  { $set: { status: "active" } }   // নতুন মান
);

এখানে, যাদের is_active মান true, তাদের status ফিল্ড active এ আপডেট করা হয়েছে।

replaceOne() উদাহরণ:

db.collection("users").replaceOne(
  { email: "bob@example.com" },         // ফিল্টার শর্ত
  { name: "Bob Marley", age: 30 }       // নতুন ডকুমেন্ট
);

এখানে, bob@example.com ইমেইল এর ডকুমেন্টটি সম্পূর্ণরূপে প্রতিস্থাপন করা হয়েছে।


ডকুমেন্ট ডিলিট (Delete)

DocumentDB-তে ডকুমেন্ট মুছে ফেলার জন্য deleteOne() বা deleteMany() মেথড ব্যবহার করা হয়। deleteOne() একটি ডকুমেন্ট মুছে ফেলতে ব্যবহৃত হয় এবং deleteMany() একাধিক ডকুমেন্ট মুছে ফেলতে ব্যবহৃত হয়।

deleteOne() উদাহরণ:

db.collection("users").deleteOne({ email: "alice@example.com" });

এখানে, alice@example.com ইমেইল এর ডকুমেন্টটি মুছে ফেলা হয়েছে।

deleteMany() উদাহরণ:

db.collection("users").deleteMany({ is_active: false });

এখানে, যেসব ডকুমেন্টের is_active মান false, সেগুলি মুছে ফেলা হয়েছে।


সারাংশ

DocumentDB-তে CRUD অপারেশনগুলি খুবই গুরুত্বপূর্ণ এবং একে সঠিকভাবে ব্যবহার করে ডেটাবেসের মধ্যে ডকুমেন্ট ইনসার্ট, আপডেট ও ডিলিট করা যায়। insertOne() এবং insertMany() ডকুমেন্ট ইনসার্ট করার জন্য, updateOne() এবং updateMany() ডকুমেন্ট আপডেট করার জন্য এবং deleteOne()deleteMany() ডকুমেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়। এই অপারেশনগুলো ডেটা ম্যানিপুলেশনের জন্য সবচেয়ে মৌলিক টুলস।

common.content_added_by

Bulk Operations

232
232

Bulk Operations হল ডেটাবেসে একসাথে একাধিক ডেটা রেকর্ড সন্নিবেশ (insert), আপডেট (update), অথবা মুছে ফেলা (delete) করার প্রক্রিয়া। এই প্রক্রিয়াটি একাধিক ডেটা একযোগে পরিচালনা করতে ব্যবহৃত হয়, যা ডেটাবেসের কার্যকারিতা এবং পারফরম্যান্স উন্নত করে। Bulk Operations ডেটাবেসের ট্রানজাকশনগুলিকে আরও দক্ষ ও দ্রুত করে তোলে, বিশেষ করে যখন বড় আকারের ডেটা হ্যান্ডলিং করতে হয়।


Bulk Operations-এর সুবিধা

  • পারফরম্যান্স উন্নয়ন: একাধিক অপারেশনকে একযোগে সম্পাদন করার মাধ্যমে, ডেটাবেসের পারফরম্যান্স অনেক বাড়ে। প্রতিটি ট্রানজাকশনের জন্য আলাদা করে অনুরোধ পাঠানো এড়ানো হয়, যা কম লোড এবং দ্রুত ফলাফল দেয়।
  • কম নেটওয়ার্ক রিকোয়েস্ট: একাধিক অপারেশন একসাথে প্রক্রিয়া করা হলে, নেটওয়ার্ক রিকোয়েস্টের সংখ্যা কমে যায়, ফলে নেটওয়ার্ক বিলম্ব কমে এবং ডেটাবেসে দ্রুত ডেটা ইনসার্ট বা আপডেট করা সম্ভব হয়।
  • অপারেশন সিঙ্ক্রোনাইজেশন: একাধিক ডেটা একসাথে হ্যান্ডেল করলে, ডেটাবেসে কোডের পুনরাবৃত্তি কমে যায় এবং সিঙ্ক্রোনাইজেশন আরও সহজ হয়।
  • কম ট্রানজাকশন ওভারহেড: প্রতিটি অপারেশনের জন্য নতুন ট্রানজাকশন খুলতে না হওয়ার কারণে, মোট ট্রানজাকশন ওভারহেড কমে যায়।

Bulk Operations এর ধাপগুলো

  1. Bulk Insert:

    • একাধিক রেকর্ড একসাথে ইনসার্ট করা। সাধারণত, আপনি একাধিক ডকুমেন্ট বা রেকর্ড একই সময়ে ডেটাবেসে সন্নিবেশ করতে পারেন, যা ডেটাবেসে নতুন রেকর্ড তৈরির প্রক্রিয়া দ্রুত করে।

    উদাহরণ:

    [
      { "name": "John", "age": 30, "city": "New York" },
      { "name": "Alice", "age": 28, "city": "Los Angeles" },
      { "name": "Bob", "age": 35, "city": "Chicago" }
    ]
    

    এই ডেটাগুলি একসাথে ইনসার্ট করা যাবে।

  2. Bulk Update:

    • একাধিক রেকর্ড বা ডকুমেন্ট একযোগে আপডেট করা। যখন আপনার অনেক রেকর্ডে একই পরিবর্তন প্রয়োজন, তখন Bulk Update প্রক্রিয়া ব্যবহার করা হয়।

    উদাহরণ:

    { "age": 30, "city": "San Francisco" }
    

    এই পরিবর্তনটি একাধিক রেকর্ডে প্রয়োগ করা যেতে পারে।

  3. Bulk Delete:

    • একাধিক ডেটা রেকর্ড মুছে ফেলা। যখন অনেক ডেটা একসাথে মুছে ফেলতে হয়, Bulk Delete অপারেশন ব্যবহার করা হয়।

    উদাহরণ:

    { "age": { "$lt": 30 } }
    

    এই কোডের মাধ্যমে আপনি সকল রেকর্ড মুছে ফেলতে পারেন, যেখানে age ৩০ এর কম।


Bulk Operations MongoDB এবং DocumentDB-তে

MongoDB:

MongoDB-তে Bulk Operations MongoDB Shell বা MongoDB API-এর মাধ্যমে করা যেতে পারে। MongoDB-তে এটি সাধারণত bulkWrite() ফাংশনের মাধ্যমে পরিচালিত হয়। উদাহরণস্বরূপ:

db.collection.bulkWrite([
  { insertOne: { "document": { "name": "John", "age": 30, "city": "New York" } } },
  { updateOne: { "filter": { "name": "Alice" }, "update": { "$set": { "age": 29 } } } },
  { deleteOne: { "filter": { "name": "Bob" } } }
]);

এখানে একাধিক অপারেশন (insert, update, delete) একসাথে সম্পন্ন করা হয়েছে।

DocumentDB:

DocumentDB MongoDB-এর API সমর্থন করে, তাই MongoDB এর মতোই Bulk Operations প্রয়োগ করা সম্ভব। DocumentDB তে MongoDB-র মতই bulkWrite() ব্যবহার করা যেতে পারে।

db.collection.bulkWrite([
  { insertOne: { "document": { "name": "John", "age": 30, "city": "New York" } } },
  { updateOne: { "filter": { "name": "Alice" }, "update": { "$set": { "age": 29 } } } },
  { deleteOne: { "filter": { "name": "Bob" } } }
]);

Bulk Operations ব্যবহারের ক্ষেত্রে কিছু সতর্কতা

  • রিসোর্স লিমিটেশন: একাধিক অপারেশন একসাথে করা হলে সার্ভারের উপর অতিরিক্ত লোড পড়তে পারে, বিশেষ করে বড় ডেটাসেট নিয়ে কাজ করার সময়।
  • এটমিক প্রকৃতি: যদি কোন একটি অপারেশন ব্যর্থ হয়, তবে অন্যান্য অপারেশনগুলি কি সফলভাবে কমপ্লিট হবে কিনা, তা নিশ্চিত করতে এটমিক ট্রানজাকশন নিশ্চিত করতে হবে (যদি সেই ডেটাবেস এটি সমর্থন করে)।
  • সর্বোচ্চ সীমা: অনেক ডেটাবেসের কিছু সর্বোচ্চ সীমা থাকে যে পরিমাণ ডেটা একসাথে ইনসার্ট বা আপডেট করা যাবে, তাই Bulk Operations-এর জন্য পরিমাণগত সীমা জানিয়ে রাখা গুরুত্বপূর্ণ।

সারাংশ

Bulk Operations ডেটাবেসে একাধিক ডেটা একযোগে ইনসার্ট, আপডেট বা ডিলিট করার একটি শক্তিশালী পদ্ধতি, যা পারফরম্যান্স এবং কার্যকারিতা বাড়ায়। MongoDB এবং DocumentDB তে এর ব্যবহারের মাধ্যমে ডেটাবেসের কার্যকারিতা অনেক গুণ বৃদ্ধি পায় এবং ডেটার দ্রুত প্রবাহ নিশ্চিত করা যায়। তবে, ডেটাবেসের সীমা এবং লোডের উপর নজর রাখা জরুরি।

common.content_added_by

Aggregation এবং Query কৌশল

241
241

DocumentDB (এবং MongoDB) এর মধ্যে Aggregation এবং Query কৌশল দুটি ডেটা অনুসন্ধান এবং বিশ্লেষণ করার অত্যন্ত শক্তিশালী মাধ্যম। এই কৌশলগুলি আপনাকে ডেটাবেসে সঞ্চিত ডেটা থেকে জটিল তথ্য বের করতে এবং আরও দক্ষভাবে পারফরম্যান্স উন্নত করতে সহায়তা করে।


Query কৌশল

Query হল ডেটাবেসে ডেটা খোঁজার এবং ফিল্টার করার একটি উপায়। DocumentDB বা MongoDB তে আপনি JSON ডকুমেন্টের ভিত্তিতে অনুসন্ধান করতে পারেন।

1. সিম্পল কুয়েরি

সাধারণ কুয়েরি ব্যবহার করে আপনি নির্দিষ্ট ডকুমেন্ট বা ডেটার অংশ খুঁজে পেতে পারেন।

উদাহরণ:

db.users.find({ "age": { "$gte": 18 } })

এটি users কালেকশন থেকে সমস্ত ব্যবহারকারীদের খুঁজে বের করবে যাদের বয়স ১৮ বা তার বেশি।

2. Projection

Projection কুয়েরি ব্যবহার করে আপনি নির্দিষ্ট ফিল্ডগুলো ফেরত পেতে পারেন, যাতে কেবলমাত্র প্রয়োজনীয় তথ্য রিটার্ন হয়।

উদাহরণ:

db.users.find({ "age": { "$gte": 18 } }, { "name": 1, "age": 1 })

এটি name এবং age কেবল ফিরিয়ে দেবে, অন্য কোন তথ্য ছাড়া।

3. Filtering

ফিল্টারিং কুয়েরি ডেটাকে নির্দিষ্ট শর্তের উপর ভিত্তি করে ফিল্টার করে।

উদাহরণ:

db.orders.find({ "status": "shipped", "amount": { "$gt": 100 } })

এটি কেবল সেই অর্ডারগুলো ফিরিয়ে দিবে যেগুলির স্ট্যাটাস "shipped" এবং যাদের পরিমাণ ১০০ এর বেশি।

4. Sorting

Sorting কুয়েরি ব্যবহার করে আপনি রিটার্ন হওয়া ডেটা সাজাতে পারেন।

উদাহরণ:

db.users.find().sort({ "age": -1 })

এটি ব্যবহারকারীদের বয়সের ভিত্তিতে ডিসেনডিং (বাড়ানোর) ক্রমে সাজাবে। (যদি 1 দেওয়া হয়, তাহলে Ascending হয়)

5. Limiting and Skipping

আপনি কতগুলো ডেটা ফিরিয়ে দেবেন এবং কোথা থেকে শুরু করবেন, তা কন্ট্রোল করতে limit এবং skip কুয়েরি ব্যবহার করতে পারেন।

উদাহরণ:

db.orders.find().skip(10).limit(5)

এটি প্রথম ১০টি ডকুমেন্ট স্কিপ করবে এবং পরবর্তী ৫টি রিটার্ন করবে।


Aggregation কৌশল

Aggregation হল একটি শক্তিশালী কৌশল যা এক বা একাধিক ডকুমেন্টের উপর বিভিন্ন অপারেশন পরিচালনা করে, যেমন গণনা, গোষ্ঠীভুক্তকরণ, পরিসংখ্যান সংগ্রহ, ইত্যাদি। DocumentDB বা MongoDB-তে আপনি Aggregation Pipeline ব্যবহার করতে পারেন যা বিভিন্ন স্টেপের মাধ্যমে ডেটা প্রক্রিয়া করে।

1. Aggregation Pipeline

Aggregation Pipeline হল ডেটা প্রক্রিয়াকরণের একটি ধাপে ধাপে পদ্ধতি যেখানে একাধিক স্টেপ থাকে। প্রতিটি স্টেপে ডেটা একটি নির্দিষ্ট প্রক্রিয়া অনুসরণ করে।

উদাহরণ:

db.sales.aggregate([
  { "$match": { "category": "electronics" } },
  { "$group": { "_id": "$brand", "total_sales": { "$sum": "$amount" } } },
  { "$sort": { "total_sales": -1 } }
])

এটি প্রথমে electronics ক্যাটাগরির বিক্রয়গুলো নির্বাচন করবে, তারপর brand অনুযায়ী বিক্রয় মোট যোগ করবে এবং পরিশেষে সর্বোচ্চ বিক্রয় ব্র্যান্ডগুলো সাজাবে।

2. $match

$match স্টেপ ডেটাকে একটি নির্দিষ্ট শর্তের ভিত্তিতে ফিল্টার করে। এটি find() কুয়েরির মতো কাজ করে।

উদাহরণ:

db.orders.aggregate([
  { "$match": { "status": "completed" } }
])

এটি completed স্ট্যাটাসের অর্ডারগুলিকে ফিল্টার করবে।

3. $group

$group স্টেপটি ডেটাকে নির্দিষ্ট একটি ফিল্ডের উপর ভিত্তি করে গ্রুপ করতে ব্যবহৃত হয় এবং কিছু সংক্ষিপ্ত পরিসংখ্যান তৈরি করতে সহায়ক।

উদাহরণ:

db.sales.aggregate([
  { "$group": { "_id": "$category", "total_sales": { "$sum": "$amount" } } }
])

এটি প্রতিটি category অনুযায়ী মোট বিক্রয় পরিমাণ যোগ করবে।

4. $sort

$sort স্টেপ ব্যবহার করে ডেটাকে নির্দিষ্ট একটি ফিল্ডের ভিত্তিতে সাজানো হয়।

উদাহরণ:

db.orders.aggregate([
  { "$sort": { "order_date": -1 } }
])

এটি অর্ডারগুলিকে সর্বশেষ অর্ডারের ভিত্তিতে সাজাবে।

5. $project

$project স্টেপটি ডেটার আউটপুটের ফিল্ড কন্ট্রোল করতে ব্যবহৃত হয়, অর্থাৎ আপনি কোন ফিল্ডগুলো রিটার্ন করবেন তা নির্ধারণ করতে পারবেন।

উদাহরণ:

db.users.aggregate([
  { "$project": { "name": 1, "age": 1 } }
])

এটি কেবল name এবং age ফিল্ড রিটার্ন করবে।

6. $limit

$limit স্টেপটি নির্দিষ্ট সংখ্যক ডকুমেন্ট ফেরত আনে।

উদাহরণ:

db.users.aggregate([
  { "$limit": 5 }
])

এটি কেবল প্রথম ৫টি ডকুমেন্ট রিটার্ন করবে।

7. $unwind

$unwind স্টেপটি একটি অ্যারে ফিল্ডের প্রতিটি উপাদান আলাদাভাবে এক্সট্র্যাক্ট করে।

উদাহরণ:

db.orders.aggregate([
  { "$unwind": "$items" }
])

এটি items অ্যারে ফিল্ডের প্রতিটি আইটেমকে আলাদা আলাদা ডকুমেন্ট হিসেবে দেখাবে।


Aggregation এবং Query কৌশলগুলো কবে ব্যবহার করবেন?

  • Query কৌশল ব্যবহার করবেন যদি আপনাকে সাধারণভাবে একটি ডকুমেন্ট বা ডেটার অংশ অনুসন্ধান করতে হয়, যেমন একটি নির্দিষ্ট শর্ত পূর্ণকারী ডকুমেন্ট খোঁজা।
  • Aggregation কৌশল ব্যবহার করবেন যখন আপনাকে ডেটাকে গ্রুপ, ফিল্টার, বা জটিল গণনা (যেমন যোগফল, গড়, সর্বোচ্চ, ন্যূনতম) করতে হবে, অথবা যখন ডেটা সেটটি বড় এবং আপনি ডেটা থেকে আরো গভীর বিশ্লেষণ করতে চান।

সারাংশ

DocumentDB (এবং MongoDB) এর Query এবং Aggregation কৌশলগুলি ডেটাবেস থেকে তথ্য অনুসন্ধান ও বিশ্লেষণ করার জন্য অত্যন্ত গুরুত্বপূর্ণ। যেখানে Query কৌশলগুলি সরল অনুসন্ধান এবং ফিল্টারিং এর জন্য ব্যবহৃত হয়, Aggregation কৌশলগুলি ডেটার উপর জটিল গাণিতিক এবং পরিসংখ্যানিক অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এই কৌশলগুলির সাহায্যে আপনি ডেটা পরিচালনা, বিশ্লেষণ এবং অপটিমাইজ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion